Skip to main content link. Accesskey S
  • Help
  • HCL Logo
  • HCL Lotus Expeditor wiki
  • THIS WIKI IS READ-ONLY. Individual names altered for privacy purposes.
  • HCL forums and blogs
  • Home
  • Product Documentation
  • Community Articles
Search
Community Articles > Lotus Expeditor 6.2.3 Integrator Documentation > Additional Operating Functions
  • Share Show Menu▼
  • Subscribe Show Menu▼

Recent articles by this author

What's New in Lotus Expeditor Client for Desktop and Toolkit 6.2.3

This article provides an overview of the new and noteworthy features and capabilities in the Expeditor 6.2.3 Desktop Client and Toolkit

What's New for Lotus Expeditor Client for Devices 6.2.2

Lotus® Expeditor Client for Devices 6.2.2 provides new function and supports new platforms over the previous release, Lotus Expeditor Client for Devices 6.2.1. New Platform Support Windows Mobile 6.5 devices Support for remote update of Expeditor core components Allows administrators to send new ...

How-To: Enable the Integrator Linux Daemon support

Starting with the 6.2.1 release, the Lotus Expeditor integrator product will support the RedHat Enterprise Linux (RHEL) Update 5 and SuSe Linux (SLED) Desktop Edition 10 platforms. Lotus Expeditor integrator can be configured to run as a standalone runtime as well as a daemon. The following ...

What's New in Lotus Expeditor Server 6.2.1

The Lotus® Expeditor Client Server 6.2.1 provides new application development functions over the previous release, Lotus Expeditor Client Server 6.2. Here are the highlights of these new application development functions: New Platform Support Windows Server 2008 New Database Support Oracle 11g ...

What's New in Lotus Expeditor Client for Devices 6.2.1

The Lotus® Expeditor Client for Devices 6.2.1 provides new application development functions over the previous release, Lotus Expeditor Client for Devices 6.2. Here are the highlights of these new application development functions: New Device Support WinCE 6.0 Pro devices Nokia S60 3.2 ...
Community articleAdditional Operating Functions
Added by ~Emile Asatoolitader | Edited by ~Maria Asaresterynds on April 4, 2017 | Version 4
  • Actions Show Menu▼
expanded Abstract
collapsed Abstract
No abstract provided.
Tags: Integrator
Return to Main Contents
ShowTable of Contents
HideTable of Contents
  • 1 Platform Restart
  • 2 Browse file directory
  • 3 Drain and Browsing Queues
  • 4 Configuration Update
  • 5 Execute Script
  • 6 Maintenance Mode
  • 7 Local Maintenance Flow (TECHNOLOGY PREVIEW CODE)
    • 7.1 Trigger for the Local Maintenance Flow
    • 7.2 Activities of the Local Maintenance Mode Flow
      • 7.2.1 XPDINTEG_APPLY_NEW_MICROACL Activity
      • 7.2.2 XPDINTEG_BUNDLE_CONTROL Activity
      • 7.2.3 XPDINTEG_RESOURCE_MONITOR_CONTROL Activity
      • 7.2.4 XPDINTEG_MB_BRIDGE_CONTROL Activity
      • 7.2.5 XPDINTEG_WAIT_FOR_QUEUE_PROCESSING Activity
  • 8 House Keeping Flow
    • 8.1 Local File System House Keeping
    • 8.2 Local Queue House Keeping
    • 8.3 Durable Subscriber House Keeping
    • 8.4 Local System Resources House Keeping
  • 9 IBM Support Assistant (ISA)

This section covers additional use cases that simplify the remote operation and control of the Expeditor integrator.

Platform Restart


The PlatformRestart control message can be sent to theitor integrator CtrlQ to trigger stopping, resetting and re-starting of the complete runtime.

Please, refer to the Using the IBM Expeditor integrator platform for further details (see Ref_2).

Browse file directory


The BrowseDirectory request messages can be sent to the Expeditor integrator (CtrlQ) to retrieve a list of names of files that are currently stored in a given target (FTP or local file system) directory.

Please, refer to the Using the IBM Expeditor integrator platform for further details. (see Ref_2)

Drain and Browsing Queues


A list of messages (Message IDs and all custom header value-pairs) can be retrieved by sending a BrowseQueue request message to the Expeditor integrator (to CtrlQ).

Furthermore, messages in local queues of the Expeditor integrator can be deleted by sending a DrainQueue message.

Please, refer to the Using the IBM Expeditor integrator platform for further details. (see Ref_2)

Configuration Update


The ConfigUpdate Control Message can be used to send a new XPDinteg.xml configuration file or a list of updated configuration properties to the Expeditor integrator runtime (CtrlQ). The new configuration file or list of configuration parameters (provided as XPDINTEG_CONFIG_XML structure) is carried as message payload and applied to the configuration files in the /config folder. The Default_ConfigurationUpdate ACS flow is started which instantly updates the configuration stores of all Expeditor integrator components (bundles) within a transaction (see description in chapter 5.3 Change Expeditor integrator Configuration).

This Default_ConfigurationUpdate flow can be further secured by checking the provided credentials in the JMS Custom header property Credentials of the ConfigUpdate control message (see chapter Securing Operations).

Please, refer to chapter 5.3 Change Expeditor integrator Configuration for more details.

Note: This configuration update mechanism is also used for updating the User Admin store. For this, a new XPDintegRoles.xml file or a list of properties are sent as payload of a ConfigUpdate message to the Expeditor integrator CtrlQ (see chapter 8.3.1 User Admin Service configuration using an Expeditor integrator Configuration File and ConfigUpdate flow).

Execute Script


The ExecuteScript control message can be used to send a batch file (as payload) to the Expeditor integrator (CtrlQ). The batch file is detached to a given local file system directory and executed there.

This function must be used very carefully.

The ACS Activities, e.g. XPDINTEG_FILE_EXECUTE and XPDINTEG_EXECUTE_LOCAL_SCRIPT, which are able to execute scripts can be globally disabled. The configuration parameter EnableScriptExecution is available for this in the XPDinteg.xml file. The triggered FileExecute Flow can be further secured by checking the provided credentials in the JMS Custom header property Credentials of the ExecuteScript control message (see chapter Securing Operations)).

Please, refer to the Using the IBM Expeditor integrator platform for further details (see Ref_2).

Maintenance Mode


As explained in chapter 5.6 Expeditor integrator Maintenance Mode, Expeditor integrator can be put into “Maintenance Mode” during which no or only filtered messages are forwarded to the monitoring back-end. This avoids the monitoring back-end from being flooded with “Messaging back-end not available” type of messages during a planned maintenance outage of the messaging back-end.

Listing 50 shows where the Maintenance Mode is configured in the XPDinteg.xml file. Use the tag line
<service_name>

     <maintenance mode="ON" | "OFF">

          <param name="LogToFile" value="TRUE" | "FALSE"/>

          <param name="LogFileLocation" value="c://tmp//maintenance.log"/>

     </maintenance>


of the Custom Log, Custom Event and Tivoli Monitoring Service to set these services temporary “inactive” (events are not forwarded to the configured back-end system). If the captured events must still be locally persisted during Maintenance Mode, the LogToFile parameter must be set to TRUE and the location of the created log file must also be provided (see LogFileLocation).

(Please, refer to section ‎3 for more details about configuring the Custom Log Service, Custom Event Service and the Tivoli Monitoring Service.)

Listing 51: Configuration for switching Maintenance mode on or off
<!-- Custom Log Service -->

     <custom-log-service>

     <maintenance mode="OFF">

          <param name="LogToFile" value="TRUE|FALSE"/>

          <param name="LogFileLocation" value="c://tmp//maintenance.log"/>

     </maintenance>

...

<!-- Custom Event Service -->

     <maintenance mode="ON|OFF">

          <param name="LogToFile" value="TRUE|FALSE"/>

          <param name="LogFileLocation" value="c://tmp//maintenance.log"/>

     </maintenance>

...

<!-- Tivoli Monitoring Service - iTMS -->

     <monitoring>

          <tec-monitor name="tec1">

     <maintenance mode="ON|OFF">

          <param name="LogToFile" value="TRUE|FALSE"/>

          <param name="LogFileLocation" value="c://tmp//maintenance.log"/>

     </maintenance>

…


The Maintenance mode can also be triggered through a special Expeditor integrator Control Message which is indicated by the JMS Custom Header property

MessagePurpose=Maintenance

and is sent to the Control Queue. The default JMS Resource Adapter (see Listing 51) catches this control message and fires the

com/ibm/integrator/flowtriggerevent/Maintenance/MESSAGE/JmsAdapter

event which further triggers the Default_MaintenanceModeUpdate.flow. This flow runs the

  • MaintenanceModeUpdate_RetrieveAndUpdateConfigurationAdminStore Activity to retrieve the configuration from the OSGi Configuration Admin store, changes the maintenance-mode settings (see Listing 51) according to the value provided in the Maintenance Control Message’s ResourceCmd property (ON or OFF) and creates a new XPDinteg.xml file,
  • MaintenanceModeUpdate_FileWriteToFileSystem Activity to write the new XPDinteg.xml file to the file system and the
  • MaintenanceModeUpdate_ConfigStoreUpdate Activity to apply the configuration changes to the OSGi Configuration Admin store.


Listing 52: Configuration of the JMS Resource Adapter for incoming Maintenance Control Messages

<adapter type="XPDINTEG_JMS_DESTINATION_ADAPTER" name="MaintenanceModeUpdate">

     <listener>

          <meta-data>MessagePurpose = 'Maintenance'</meta-data>

          <topic>com/ibm/integrator/flowtriggerevent/Maintenance/MESSAGE/JmsAdapter</topic>

     </listener>

     <configuration>

          <param name="JndiConnectionFactoryKey" value="jms/XPDinteg_ConnectionFactory"/>

          <param name="JndiDestinationKey" value="jms/XPDinteg_CtrlQ"/>

          <param name="JndiDeadletterKey" value="jms/XPDinteg_ServerDeadletterQ"/>

     </configuration>

</adapter>

...


In additional to the Maintenance Control Message, the Maintenance Mode can also be toggled on/off by sending Expeditor integrator configuration updates using the ConfigUpdate Control Message to change the Maintenance Mode settings in the Custom Log, Custom Event and Tivoli Monitoring Service (see Listing 51).
Please, refer to the Using the IBM Expeditor integrator platform for further details about creation of Maintenance or ConfigUpdate Control Messages (see Ref_2).

Local Maintenance Flow (TECHNOLOGY PREVIEW CODE)


As described in chapter 5.7 Expeditor integrator can be put into the Local Maintenance Mode to allow a safe upgrade or reset of the product.

The following chapters describe in detail the steps processed when the LocalMaintenance mode is triggered.

Trigger for the Local Maintenance Flow

The Local Maintenance mode can be triggered either by a local file or a control message sent by the messaging backend.

Expeditor integrator monitors by default for the file named /config/system/maint/StartLocalMaintenance.txt

As soon as this file is created the LocalMaintanceMode flow is triggered (/flowdefs/system/Default_Start_Local_Maintenance_File.flow). The default configuration section for the Local Filesystem adapter is mentioned in Listing 53.

Listing 53: Local Filesystem Adapter for the Local Maintenance Mode trigger

<adapter type="XPDINTEG_FILE_SYSTEM_ADAPTER" name="LocalMaintenanceModeFileAdapter">


     <!-- sync mode -->

     <polling>

          <interval>10000</interval>

          <meta-data>ASCII-config/system/maint/StartLocalMaintenance.txt</meta-data>

          <topic>com/ibm/integrator/flowtriggerevent/LocalMaintenance/LocalFileSystem/LocalMaintenanceFile/LocalFileSystemAdapter/system</topic>

     </polling>

     <configuration>

          <param name="ResourceType" value="LocalFileSystemMonitorForLocalMaintance"/>

          <param name="TransferConfirmationMode" value="DELETE"/>

          <param name="DestinationName" value="config/system/maint/StartLocalMaintenance.txt"/>

          <param name="ProcessZeroLengthFiles" value="TRUE"/>

     </configuration>

</adapter>


The second option to enter the Local Maintenance Mode is via the StartLocalMaintenance Control Message (send to local CtrlQ). A control message with the Custom JMS Header Property MessagePurpose=StartLocalMaintenance also triggers the LocalMaintenanceMode flow (/flowdefs/system/Default_Start_Local_Maintenance_Message.flow).

The default configuration section for the JMS adapter that listens to this message is described in Listing 54.

Listing 54: JMS Adapter for the Local Maintenance Mode trigger

<adapter type="XPDINTEG_JMS_DESTINATION_ADAPTER" name="LocalMaintenanceModeJmsAdapter">


     <!-- async mode -->

     <listener>

          <meta-data>MessagePurpose = 'StartLocalMaintenance'</meta-data>

          <topic>com/ibm/integrator/flowtriggerevent/LocalMaintenance/MESSAGE/JmsAdapter</topic>

     </listener>

     <configuration>

          <param name="JndiConnectionFactoryKey" value="jms/XPDinteg_ConnectionFactory"/>

          <param name="JndiDestinationKey" value="jms/XPDinteg_CtrlQ"/>

          <param name="JndiDeadLetterKey" value="jms/XPDinteg_ServerDeadletterQ"/>

          <param name="ValidateLocationId" value="ON"/>

     </configuration>

</adapter>


Activities of the Local Maintenance Mode Flow


When entering the Local Maintenance mode the following steps are executed:


1. Stop all incoming communication into Expeditor integrator

a. Disconnect active messaging clients (inbound) and refuse new connections:

b. Disconnect active inbound REST connections and stop REST service

c. Stop custom resource monitors/adapters (FTP, LFS, SSH, JDBC, HTTP) - JMS adapater must stay alive

d. Stop receiving messages on incoming bridged queues from Backend systems


2. Wait until queues are empty (with a configurable timeout: UnprocessedQueueTimeout): during the wait loop, the ACS service tries processes all messages being left on the queues

3. After the UnprocessedQueueTimeOut expires unprocessed messages being left on queues are handled by the configured action [DISCARD|REMOVE|FILE]


a. DEFAULT: automatically discard remaining messages (DISCARD)

b. forward to ServerDeadletterQ (try to send it once by resetting the timer - after that Messages will be discarded automatically) (REMOVE)


4. Create file /config/system/maint/StartLocalMaintenance.done file which indicates that Expeditor integrator platform has reached Maintenance Mode.

5. Shutdown Expeditor integrator (NOTE: This must be specified for Linux or Windows operating system see in Ref_2.)

 


XPDINTEG_APPLY_NEW_MICROACL Activity

Generally, this activity class allows applying a new authentication and authorization configuration to the current micro broker instance. Authenication changes are done by deploying new XPDintegMBUsers.xml file with usernames and passwords for micro broker access. Authorization changes are performed by deploying a new micro-acl.xml file which contains specific micro broker resource access definitions.


Note: This Activity operates currently with simple JAVA file objects, not with XA resources. Therefore, currently transaction safety is available.

Activity Context Parameters relevant for the Local Maintenance Flow:

  • ActivateNow = true | false: specifies whether the new micro-acl.xml file is applied and activated by restarting the micro broker instance.
  • NewAclFileLocation: location of new micro-acl.xml file that needs to be applied
  • BackupAclFileLocation: location of old micro-acl.xml file for backup reasons (when this parameter is provided, the current/old micro-acl.xml file is backed up, otherwise it is not)
  • NewMBUsersFileLocation: location of new XPDintegMBUsers.xml file that needs to be applied
  • BackupMBUsersFileLocation: location of old XPDintegMBUsers.xml file for backup reasons (when this parameter is provided, the current/old XPDintegMBUsers.xml file is backed up, otherwise it is not)
  • DeleteSourceFilesAfterDeployment: true | false: specifies whether the files under NewAclFileLocation and NewMBUsersFileLocation should be deleted after successful deployment

This activity is used in the Local Maintenance Flow to stop external microbroker messaging clients from sending further data to Expeditor integrator. At the same time, Expeditor integrator must still be able to continue processing already received data. This may include sending messages TO the external messaging clients. The provided ACL file /config/system/micro-acl_for_LocalMaint.xml contains a configuration which achieves this: External micro broker clients can only receive messages from Expeditor integrator (external clients are messaging clients connected to other interfaces than 127.0.0.1). Internal clients connected to 127.0.0.1 can still send to and receive messages from Expeditor integrator’s microbroker to be able to further process already received messages. The final objective in the Local Maintenance Flow is to process all already received messages and empty the local queues.

 

Listing 55: microbroker ACL configuration for Local Maintenance Flow (/config/system/micro-acl_for_LocalMaint.xml)

 

<?xml version="1.0" encoding="UTF-8"?>


<!-- IBM Property 

          micro broker ACL configuration for Expeditor integrator

          Local Maintenance Flow:

          - 1) / 2) allows only user Admin to administer broker

          - 3) all users can still connect to broker

          - 4b) internal clients on same machine (127.0.0.1) have

          read/write access to topics and queues

          - 4c) / d) external clients can only access topics and queues

          for receiving messages (no writing allowed) -->

<micro-acl policy-combination="permit-overrides"

     xmlns='http://com.ibm.micro/micro-acl'

     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

     xsi:schemaLocation="http://com.ibm.micro/micro-acl micro-acl.xsd">

     <policy rule-combination="permit-overrides">

          <resource type="broker"/>

          <!-- 1. Deny all to access resource broker -->

               <rule effect="deny"/>

          <!-- 2. Allow given users accessing resource broker for given actions, on given network interface -->

          <rule effect="permit">

          <!-- only user Admin can connect to and administer broker -->

               <subject name="Admin" />

               <action value="connect" />

               <action value="admin" />

          </rule>

          <rule effect="permit">

          <!-- 3. All users can still connect -->

               <subject name="anonymous"/>

               <action value="connect" />

          </rule>

     </policy>

     <policy rule-combination="permit-overrides">

          <resource type="topic" />

          <resource type="queue" />

          <!-- Rule_4 a): By default, deny all clients to ACCESS topic and queue resources: -->

          <rule effect="deny" />

          <!-- Rule_4 b): Only users located on same machine 127.0.0.0 can ACCESS all resources -->

          <rule effect="permit">

               <subject name="anonymous"/>

               <environment network="127.0.0.0/8"/>

          </rule>

          <!-- Rule_4 c): External users can only receive messages from topic resources -->

          <rule effect="permit">

               <subject name="anonymous"/>

               <resource type="topic"/>

               <action value="subscribe"/>

          </rule>

          <!-- Rule_4 d): External users can only receive messages from queue resources -->

          <rule effect="permit" >

               <subject name="anonymous"/>

               <resource type="queue"/>

               <action value="get"/>

          </rule>

          </policy>

</micro-acl>

This is the activity configuration in the Local Maintenance Flow:

Listing 56: Apply New Micro ACL Activity section for the Local Maintenance Flow

<XPDintegActivity Name="MaintenanceModeUpdate_StopExternalmbClients_withNewMicroAcl"


     ActivityName="XPDINTEG_APPLY_NEW_MICROACL"

     ActivateNow="true"

     NewAclFileLocation="config/system/micro-acl_for_LocalMaint.xml"      BackupAclFileLocation="config/backup/micro-acl_for_LocalMaint.xml.backup"

     NewMBUsersFileLocation="config/system/XPDintegMBUsers_for_LocalMaint.xml"     BackupMBUsersFileLocation="config/backup/XPDintegMBUsers_for_LocalMaint.xml.backup"

     DeleteSourceFilesAfterDeployment="false"

/>

More details about this activity are provided in Ref_2.

 

XPDINTEG_BUNDLE_CONTROL Activity

This ACS flow activity generally allows controlling OSGi bundles during ACS flow execution. Its main purpose for Expeditor integrator is supporting starting and stopping of already nstalled bundles. The OSGi Framework BundleContext and Bundle interface are used to locate and access the bundle which needs to be controlled.


Activity Context Parameters relevant for the Local Maintenance Flow:

  • BundleName = name of the controlled bundle in the platform
  • Command = START | STOP


Currently, this activity is used to stop the Expeditor integrator REST Adapter Service in order to avoid possible connected clients to send further messages to integrator through this interface.

 

Listing 57: Bundle Control Activity section for the flow

 

<XPDintegActivity


     Name="MaintenanceModeUpdate_BundleControl_StopRESTAdapter"

     ActivityName="XPDINTEG_BUNDLE_CONTROL"

     BundleName="com.ibm.rcp.integrator.rest"

     Command="STOP"

/>


More details about this activity are provided in Ref_2

 

XPDINTEG_RESOURCE_MONITOR_CONTROL Activity

The XPDINTEG_RESOURCE_MONITOR_CONTROL activity is used to stop all custom resource monitors like FTP, LFS, SSH, JDBC and HTTP adapters, This activity offers two configuration parameters: "AdapterTypeList" and "Command".

The "AdapterTypeList" parameter allows all possible adapter types that are known within Expeditor integrator. For the Local Maintenance Mode it must be set to “XPDINTEG_FILE_SYSTEM_ADAPTER,XPDINTEG_FTP_ADAPTER,XPDINTEG_SSH_ADAPTER,XPDINTEG_HTTP_ADAPTER,XPDINTEG_JDBC_ADAPTER,XPDINTEG_GENERIC_ADAPTER”.

The “Command” parameter allows the values “START” or “STOP”. For the Local Maintenance Mode it must be set to “STOP”.

The Listing 58 details the whole activity section for the flow:

Listing 58: Resource Monitor Control Activity section for the flow

<XPDintegActivity

Name="MaintenanceModeUpdate_Stop_Resource_Monitors"


     ActivityName="XPDINTEG_RESOURCE_MONITOR_CONTROL"

     AdapterTypeList="XPDINTEG_FILE_SYSTEM_ADAPTER,XPDINTEG_FTP_ADAPTER,XPDINTEG_SSH_ADAPTER,XPDINTEG_HTTP_ADAPTER,XPDINTEG_JDBC_ADAPTER,XPDINTEG_GENERIC_ADAPTER"

     Command="STOP"

/>

XPDINTEG_MB_BRIDGE_CONTROL Activity

The XPDINTEG_MB_BRIDGE_CONTROL activity is used to stop the incoming communication from messaging backend. Therefore all incoming Bridge flows are stopped. This activity offers therefore 2 configuration parameters: “FlowTypeList” and “Command”. The “FlowTypeList” parameter must be set to “INBOUND” and the “Command” parameter must be set to “STOP”.

Listing 59 details the whole activity section for the flow.

Listing 59: Bridge Control Activity section for the flow

<XPDintegActivity


     Name="MaintenanceModeUpdate_Stop_Inbound_Messaging_Communication"

     ActivityName="XPDINTEG_MB_BRIDGE_CONTROL"

     FlowTypeList="INBOUND"

Command="STOP"

/>

 

XPDINTEG_WAIT_FOR_QUEUE_PROCESSING Activity

 

The XPDINTEG_WAIT_FOR_QUEUE_PROCESSING activity is used to wait for a configurable time interval until all messages are processed and delivered e.g. to the Backend system or other external clients. The activity does the following:

  • First check if all queues are empty considering an “Ignore list”, if there are no messages on the queues, the activity finishes
  • if there are messages, the activity waits for a configurable time allowing to process the messages being left on the queues
  • second check if all queus are empty considering an “Ignore List”, if there are no messages on the queues the activity finishes
  • if there are still messages on the queues, the messages being left are processed by the “UnprocessedMessageAction”. If the action is set to “DISCARD” all messages being left are deleted, if the action is set to “REMOVE” the messages are sent to the provided queue name (“UnprocessedMessageTarget”). If this queue is bridged to a backend system, these messages are sent to this system and are not lost.
  • In case the action was “REMOVE”, the activity is waiting again for the configured time interval to allow further message processing (e.g. sending the messages to backend systems)
  • Final empty check is done to check if all messages are processed. If not, a WARNING logging is done and then the activity finishes.


The activity offers 4 configuration parameters:

  • "UnprocessedQueueTimeout”: This parameter represents the waiting interval in ms allowing to process further messages. Optional parameter, if not set a default interval of 30 seconds is applied.
  • “QueueIgnoreList”: This parameter is comma-separated list of queue names being during the empty-check procedure. Optional parameter.
  • “UnprocessedMessageAction”: This parameter describes the action to be processed in case messages can not be processed within the waiting interval (UnprocessedQueueTimeout). Allowed values are “DISCARD” to delete messages not being processed and “REMOVE” to move the messages to a different queue, e.g. a queue that is bridged to the backend system.Required parameter.
  • “UnprocessedMessageTarget”: This parameter describes the queue name were unprocessed messages are sent to. It is only required if the “UnprocessedMessageAction” is set to “REMOVE”.

 

Listing 60: Wait for Queueprocessing activity example for the flow

 

<XPDintegActivity


     Name="MaintenanceModeUpdate_Wait_For_Queue_Processing"

     ActivityName="XPDINTEG_WAIT_FOR_QUEUE_PROCESSING"

     UnprocessedQueueTimeout="60000"

     QueueIgnoreList="XPDinteg_LocalDeadletterQ"

     UnprocessedMessageAction="REMOVE"

     UnprocessedMessageTarget="XPDinteg_ServerDeadletterQ"

/>


House Keeping Flow


The House Keeping Flow was especially designed to ensure long-run stability of the Expeditor integrator. Since the Expeditor integrator is running on remote computers which might only be intermittently connected, it is very important to avoid running out of system resources due to constantly increasing local files (e.g. logs/traces) and queues. The House Keeping Flow should be run regularly to identify local resources which exceed or reach configurable tear limits. Configurable limits contain log, trace files, queues etc. It can be set whether only reports are created or whether certain actions are taken in case of reaching the configured limit.

The House Keeping Flow can be triggered by the HouseKeeping Control Message (to CtrlQ) or by the local House Keeping Flow Resource Adapter which takes a configurable timer value as input. This timer value contains the time interval in which the House Keeping Flow is kicked off (see Listing 21 in chapter 4.4.7 Generic Resource Adapter).

Please, refer to the Using the IBM Expeditor integrator platform for further details about the creation of the HouseKeeping message (see Ref_2).

Currently, there are 3 monitored resource types:

  • Local file system files (check whether size of defined files exceed configurable thresholds)
  • Local Expeditor integrator queues (check for queues running close to their size limit and identify messages sitting in queues which do not get processed on time – exceed their time-to-live, TTL, parameter)
  • System resources (check whether available RAM and disk space are sufficient)


Each monitored resources type has one assigned ACS Activity:

  • HOUSE_KEEPING_LOCAL_FILE_SYSTEM_ACTIVITY,
  • HOUSE_KEEPING_JMS_ACTIVITY
  • HOUSE_KEEPING_DURSUBS_ACTIVITY and
  • HOUSE_KEEPING_SYSTEM_RESOURCES_ACTIVITY


The HouseKeepingAdapter is either triggered by the HouseKeeping Control Message (configured through the
<adapter type="XPDINTEG_JMS_DESTINATION_ADAPTER" name="HouseKeepingAdapter1"

or the House Keeping Generic Resource Adapter
<adapter type="XPDINTEG_GENERIC_ADAPTER" name="HouseKeepingAdapter2">

by publishing the com/ibm/integrator/flowtriggerevent/HouseKeeping
event. This event triggers the Default_HouseKeeping.flow (see Figure 16). This flow runs the three configurable House Keeping Activities in sequential order:

  • HouseKeeping_HouseKeepingLocalFileSystem
  • HouseKeeping_HouseKeepingJMS
  • HouseKeeping_HouseKeepingDurSubs
  • HouseKeeping_HouseKeepingSystemResources


The House Keeping flow results in the /persistent/housekeeping_<date>.log file which lists all checked resources. This file could the be regularly picked up by a specifically configured LocalFileSystem file Resource Adapter which looks for the existence of the /persistence/housekeeping_<date>.log file and transmits it to back-end queue as configured.

Expeditor integrator House Keeping flow
Figure 16: Expeditor integrator House Keeping flow

The default House Keeping flow also includes one FileToMessageWrite Activity which sends the House Keeping report as message to the configured JndiDestinationKey (queue):

<XPDinteg Activity Name="HouseKeeping_HouseKeepingFileToMessageWrite"

     <ActivityName="XPDINTEG_FILE_TO_MESSAGE_WRITE"

     JndiConnectionFactoryKey="jms/XPDinteg_ConnectionFactory"

     JndiDestinationKey="jms/XPDinteg_FileSysToMsgQ"/>


Per default, messages in the FileSysToMsgQ are dispatched to the local ResOutQ which may be bridged to the ResInQx of the back-end messaging system. Please, enter a different JNDI queue name under the JndiDestinationKey in the HouseKeepingFileToMessageWrite Activity if the House Keeping report message should be sent to a different queue (for example to jms/XPDinteg_LogQ).

The House Keeping Flow can be switched off by removing
<adapter type="XPDINTEG_GENERIC_ADAPTER" name="HouseKeepingAdapterX">

(where X is the number of the House Keeping Adapter) from the local configuration file (XPDinteg.xml) or by removing the House Keeping Flow
Default_HouseKeeping.flow

file from the <XPDINTEG_HOME>/flowdefs/system directory.

Local File System House Keeping


The HOUSE_KEEPING_LOCAL_FILE_SYSTEM_ACTIVITY is used to keep track of files in the local file system that might indicate unexpected behavior.

General format of the Local_File_System_Activity configuration:
<configuration activity="HOUSE_KEEPING_LOCAL_FILE_SYSTEM_ACTIVITY">

          <param name="my_resource_name"

               value=TType:FILE;Destination:REGEX-workspace/logs/(.)*.xml;Threshold:4096;Action:REPORT_WARNING"/>

</configuration>


Table 46: HouseKeeping local file system Activity configuration

Property
Explanation
<configuration activity>=
House Keeping Activity Type (monitors given local files)
„HOUSE_KEEPING_LOCAL_FILE_SYSTEM_ACTIVITY“
<param name=
“my_resource_name”
String which describes the monitored resource
Type:
Type of resource which is monitored.
FILE – for file resource
Destination:
String pointing to the monitored resource; Regular Expressions are supported (see chapter 4.4.5 Regular Expression Support for Local File System ).
Threshold:
Tier limit for the file size in kByte
Action:
Action which is executed when the given Threshold is reached.
DELETE – file is deleted (sending back to the DeadletterQ is not supported as the size of the file is unpredictable and reading the file may cause the Expeditor integrator to crash due to Out-of-Memory. It is the job of the System Admin to retrieve files invoking explicit request, in-case the size of the file is small.)
REPORT_WARNING – warning about the exceeded threshold is recorded (also published to the OSGi console and sent as a log message to the TEC/LogQ if the respective log threshold is at least WARNING)
REPORT_INFO - only recorded in house keeping log, not displayed in OSGi console, published to TEC/LogQ if log threshold is at least INFO.

 


Listing 61: Example for HouseKeeping files Activity

<configuration activity="HOUSE_KEEPING_LOCAL_FILE_SYSTEM_ACTIVITY">

     <param name="HouseKeepingFile.1" value="Type:FILE;

          Destination:REGEX-workspace/logs/(.)*.xml;

          Threshold:4096;

          Action:REPORT_WARNING"/>

          …

</configuration>


Local Queue House Keeping


The HOUSE_KEEPING_JMS_ACTIVITY is used to keep track of local queues and messages that might cause unexpected behavior.
General format of the JMS_Activity configuration:
<configuration activity="HOUSE_KEEPING_JMS_ACTIVITY"> 

     <param name="my_resource_name" value="JNDIKey:my_queue;

          Threshold:my_queue_depth_threshold;

          ThresholdAction:REPORT_WARNING;

          TTLAction:REMOVE;

          RemoveTargetJNDI:jms/XPDinteg_ServerDeadletterQ"/>

          …

</configuration>


Table 47 explains available configuration options.

Table 47: HouseKeeping JMS Activity configuration

 

Property
Explanation
<configuration activity>=
House Keeping Activity Type (monitors given local queues)
„HOUSE_KEEPING_JMS_ACTIVITY“
<param name=
“my_resource_name”
String which describes the monitored resource
JNDIKey:
my_queue
String which contains the JNDI key of the monitored queue.
Threshold:
Tier limit for queue depth (max number of messages) before reporting.
ThresholdAction:
Action which is executed when the given Threshold is reached.

REPORT_WARNING - warning about the exceeded threshold is recorded (also published to the OSGi console and sent as a log message to the TEC/LogQ if the respective log threshold is at least WARNING)


REPORT_INFO - only recorded in house keeping log, not displayed in OSGi console, published to TEC/LogQ if log threshold is at least INFO.
TTLAction:
Action which is performed on messages with the value of the JMS Custom Header property Time-To-Live (TTL) being exceeded. The Housekeeping Activity expectes the TTL header as absolute time in ms since 1970.

DELETE – delete message which has an exceeded TTL


REMOVE – move message to queue defined under RemoveTargetJNDI
RemoveTargetJNDI:
"jms/XPDinteg_ServerDeadletterQ" (=default value)
JNDI key of the queue to which messages are moved to in case the TTL is exceeded and TTLAction:REMOVE

 


Listing 62 provides an example configuration in which the local MsgToFtpQueueis checked. If more then 30000 messages are in the MsgToFtpQueue when the House Keeping takes place, REPORT_WARNING is created (log message for the OSGi Console and the Custom Log Service). If messages are found with an exceeded value of the JMS Custom Header property Time-To-Live (TTL), they are moved to the ServerDeadletterQ.

Listing 62: Example configuration for HouseKeeping JMS Activity

<configuration activity="HOUSE_KEEPING_JMS_ACTIVITY">

     <param name="HouseKeepingDurSub_1"

          value="JNDIKey:jms/XPDinteg_MsgToFtpQueue;Threshold:30000;ThresholdAction:REPORT_WARNING;

          TTLAction:REMOVE; RemoveTargetJNDI:jms/XPDinteg_ServerDeadletterQ"/>

          …

</configuration>


Durable Subscriber House Keeping


The HOUSE_KEEPING_DURSUBS_ACTIVITY is used to keep track of disconnected messaging clients with durable subscriptions (for which the broker holds pending messages) causing the micro broker store to grow.
General format of the DurSubs_Activity configuration:
<configuration activity="HOUSE_KEEPING_DURSUBS_ACTIVITY">

     <param name="HouseKeepingDurSub_1"

          value="DurableSubName:ALL;InactivityCounterThreshold:2;

          ThresholdAction:NONE;ThresholdInfo:REPORT_ERROR"/>

...

</configuration>


Table 48 explains available configuration options.

Table 48: HouseKeeping JMS Activity configuration

 

Property
Explanation
<configuration activity>=
House Keeping Activity Type (monitors durable subscriptions)
„HOUSE_KEEPING_DURSUBS_ACTIVITY“
<param name=
“my_resource_name”
String which describes the monitored resource
DurableSubName:
Identifier of the durable subscription (message client id or durable name),

ALL (default) – handle all durable subscritpions

, - handle only provided durable subscriptions

InactivityCounterThreshold:
Threshold counter default: 2), after which the configurated action is to be executed for durable subscriptions.
ThresholdAction:
Action which is executed when the given InactivityCounterThreshold is reached.

DELETE – Delete the durable subscriber from the broker as well as from the database table which holds the status of disconnected durable subscriptions


NONE (default) – no action
ThresholdInfo:
Defines the log levelof log messages produced when the ThresholdAction is executed.

REPORT_ERROR (default) – error about the exceeded threshold is recorded (also published to the OSGi console and sent as a log message to the TEC/LogQ if the respective log threshold is at least ERROR)
REPORT_WARNING - warning about the exceeded threshold is recorded (also published to the OSGi console and sent as a log message to the TEC/LogQ if the respective log threshold is at least WARNING)
REPORT_INFO - only recorded in house keeping log, not displayed in OSGi console, published to TEC/LogQ if log threshold is at least INFOI

 


Listing 63 provides an example configuration in which the all durable subscriptions are checked. If a durable subscribed client has been disconnected during the last three housekeeping runs (InactivityCounterThreshold=2), REPORT_WARNING messages are created (log message for the OSGi Console and the Custom Log Service). If the client is still not connected, the durable subscription will be deleted.

Listing 63: Example configuration for HouseKeeping DURSUBS Activity

<configuration activity="HOUSE_KEEPING_DURSUBS_ACTIVITY">

     <param name="HouseKeepingDurSub.1"

          value="DurableSubName:ALL;InactivityCounterThreshold:2;

          ThresholdAction:DELETE;ThresholdInfo:REPORT_WARNING"/>

     ...

</configuration>

 

 


Local System Resources House Keeping


The HOUSE_KEEPING_SYSTEM_RESOURCES_ACTIVITY is used to keep track of local system resources on the remote server where the Expeditor integrator runtime is installed.

General format of the System_RESOURCES_Activity configuration:
<configuration activity="HOUSE_KEEPING_SYSTEM_RESOURCES_ACTIVITY">

     <param name="my_resouce_name"

          value="Threshold:my_threshold;

          Action:REPORT_WARNING"/>


Table 49 explains available configuration options.

Table 49: HouseKeeping System Resources Activity configuration

Property
Explanation
<configuration activity>=
House Keeping Activity Type (monitors given local queues)
„HOUSE_KEEPING_SYSTEM_RESOURCES_ACTIVITY“
<param name=
“my_resource_name”
String which describes the monitored resource.
RAM - used RAM by the Expeditor integrator runtime on the remote server
DiskSpace - used disk space by Expeditor integrator runtime on the remote server (size of <XPDINTEG_HOME>)
Files - number of files contained in the Expeditor integrator runtime on the remote server (number of files in <XPDINTEG_HOME>
Threshold:
Tier limit for the given resource.
Action:
Action which is executed when the given Threshold is reached.
REPORT_WARNING - warning about the exceeded threshold is recorded (also published to the OSGi console and sent as a log message to the TEC/LogQ if the respective log threshold is at least WARNING)
REPORT_INFO - only recorded in house keeping log, not displayed in OSGi console, published to TEC/LogQ if log threshold is at least INFO.

 


Listing 64 provides an example configuration in which

 

  • the currently used RAM is checked and a WARNING message is created if 256 MB are exceeded,
  • the currently used disk space is checked and a WARNING message is created if it exceeds 1GB,
  • the current number of files of Expeditor integrator runtime is checked and a WARNING message is created if there are more then 1000.


Listing 64: Example configuration for HouseKeeping system resources Activity

<configuration activity="HOUSE_KEEPING_SYSTEM_RESOURCES_ACTIVITY">

     <param name="RAM" value="Threshold:256000;Action:REPORT_WARNING"/>

          <param name="DiskSpace" value="Threshold:1000000;Action:REPORT_WARNING"/>

          <param name="Files" value="Threshold:1000;Action:REPORT_WARNING"/>

</configuration>


IBM Support Assistant (ISA)


The IBM Support Assistant (ISA) is an IBM tool which customers can run on IBM SW products to create an information package for the IBM Support in case of problems. The ISA collects problem determination relevant information and packages it into a ZIP file. This file can be given to IBM Support for further clarification.

Expeditor integrator also contains the ISA. It can be manually started on the remote server by executing
<XPDINTEG_HOME>/rcp/startcollector.bat/sh

The created ZIP file can then be sent to IBM Support.

Expeditor integrator also provides an ACS Flow which can be remotely triggered by the ISACollector Control Message (through CtrlQ). The created ZIP file can then be collected with the standard Default_GetLocalFileSystemFile.flow or by configuring a LocalFileSystem Resource Monitor Adapter which triggers sending the ISA ZIP file as soon as it appears in the given directory.

Please, refer to the Using the IBM Expeditor integrator platform for further details about the creation of ISACollector Control Message (see Ref_2).


  • Actions Show Menu▼


expanded Attachments (0)
collapsed Attachments (0)
Edit the article to add or modify attachments.
expanded Versions (4)
collapsed Versions (4)
Version Comparison     
VersionDateChanged by              Summary of changes
25Mar 11, 2014, 4:47:19 PM~James Opfookonyakol  
9Dec 8, 2011, 4:04:33 PM~Miriam Chunutexli  
This version (4)Apr 4, 2017, 7:48:45 PM~Maria Asaresterynds  
2May 31, 2013, 10:19:32 AM~Emile Xannilynivu  
expanded Comments (0)
collapsed Comments (0)
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedAbout
  • HCL Software
  • HCL Digital Solutions community
  • HCL Software Support
  • BlogsDigital Solutions blog
  • Community LinkHCL Software forums and blogs
  • About HCL Software
  • Privacy
  • Accessibility